package com.fowo.api.model.tmp.fba.inventory;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * FBA库存临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpFbaInventoryImportPo {

  /** 仓库 */
  @ExcelProperty("仓库")
  @Size(max = 50, message = "仓库长度不能超过50")
  private String warehouseName;

  @ExcelIgnore
  @Schema(title = "仓库")
  private String warehouse;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** FNSKU */
  @ExcelProperty("FNSKU")
  @Size(max = 50, message = "FNSKU长度不能超过50")
  private String fnsku;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 500, message = "品名长度不能超过500")
  private String productIdName;

  @ExcelIgnore
  @Schema(title = "品名")
  private String productId;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 负责人 */
  @ExcelProperty("负责人")
  @Size(max = 50, message = "负责人长度不能超过50")
  private String headName;

  @ExcelIgnore
  @Schema(title = "负责人")
  private String head;

  /** 总库存 */
  @ExcelProperty("总库存")
  @IntegerString(message = "总库存数值格式不正确", label = "总库存")
  private String totalInventory;

  /** 可用库存 */
  @ExcelProperty("可用库存")
  @IntegerString(
    message = "可用库存数值格式不正确",
    label = "可用库存",
    min = 0
  )
  private String availableStock;

  /** FBA可售 */
  @ExcelProperty("FBA可售")
  @IntegerString(message = "FBA可售数值格式不正确", label = "FBA可售", min = 0)
  private String fbaAvailableForSale;

  /** FBM可售 */
  @ExcelProperty("FBM可售")
  @IntegerString(message = "FBM可售数值格式不正确", label = "FBM可售", min = 0)
  private String fbmAvailableForSale;

  /** 待调仓 */
  @ExcelProperty("待调仓")
  @IntegerString(message = "待调仓数值格式不正确", label = "待调仓", min = 0)
  private String warehouseToBeAdjusted;

  /** 调仓中 */
  @ExcelProperty("调仓中")
  @IntegerString(message = "调仓中数值格式不正确", label = "调仓中", min = 0)
  private String duringWarehouseAdjustment;

  /** 待发货 */
  @ExcelProperty("待发货")
  @IntegerString(message = "待发货数值格式不正确", label = "待发货", min = 0)
  private String toBeShipped;

  /** 计划入库 */
  @ExcelProperty("计划入库")
  @IntegerString(
    message = "计划入库数值格式不正确",
    label = "计划入库",
    min = 0
  )
  private String plannedWarehousing;

  /** 标发在途 */
  @ExcelProperty("标发在途")
  @IntegerString(
    message = "标发在途数值格式不正确",
    label = "标发在途",
    min = 0
  )
  private String standardInTransit;

  /** 实际在途 */
  @ExcelProperty("实际在途")
  @IntegerString(
    message = "实际在途数值格式不正确",
    label = "实际在途",
    min = 0
  )
  private String actualInTransit;

  /** 入库中 */
  @ExcelProperty("入库中")
  @IntegerString(message = "入库中数值格式不正确", label = "入库中", min = 0)
  private String inStorage;

  /** 不可售 */
  @ExcelProperty("不可售")
  @IntegerString(message = "不可售数值格式不正确", label = "不可售", min = 0)
  private String notAvailableForSale;

  /** 调查中 */
  @ExcelProperty("调查中")
  @IntegerString(message = "调查中数值格式不正确", label = "调查中", min = 0)
  private String underInvestigation;

  /** 预警状态 */
  @ExcelProperty("预警状态")
  @EnumsString(
    value = { "是", "否·" },
    message = "预警状态只能是“是”, “否·”中的一个"
  )
  private String warningStatus;

  /** 0-30天库龄 */
  @ExcelProperty("0-30天库龄")
  @IntegerString(
    message = "0-30天库龄数值格式不正确",
    label = "0-30天库龄",
    min = 0
  )
  private String day30;

  /** 31-60天库龄 */
  @ExcelProperty("31-60天库龄")
  @IntegerString(
    message = "31-60天库龄数值格式不正确",
    label = "31-60天库龄",
    min = 0
  )
  private String day60;

  /** 61-90天库龄 */
  @ExcelProperty("61-90天库龄")
  @IntegerString(
    message = "61-90天库龄数值格式不正确",
    label = "61-90天库龄",
    min = 0
  )
  private String day90;

  /** 91-180天库龄 */
  @ExcelProperty("91-180天库龄")
  @IntegerString(
    message = "91-180天库龄数值格式不正确",
    label = "91-180天库龄",
    min = 0
  )
  private String day180;

  /** 181-270天库龄 */
  @ExcelProperty("181-270天库龄")
  @IntegerString(
    message = "181-270天库龄数值格式不正确",
    label = "181-270天库龄"
  )
  private String day270;

  /** 271-330天库龄 */
  @ExcelProperty("271-330天库龄")
  @IntegerString(
    message = "271-330天库龄数值格式不正确",
    label = "271-330天库龄",
    min = 0
  )
  private String day330;

  /** 331-365天库龄 */
  @ExcelProperty("331-365天库龄")
  @IntegerString(
    message = "331-365天库龄数值格式不正确",
    label = "331-365天库龄",
    min = 0
  )
  private String day365;

  /** 365天以上库龄 */
  @ExcelProperty("365天以上库龄")
  @IntegerString(
    message = "365天以上库龄数值格式不正确",
    label = "365天以上库龄",
    min = 0
  )
  private String day366;

  /** 仓库名称 */
  @ExcelProperty("仓库名称")
  @Size(max = 50, message = "仓库名称长度不能超过50")
  private String wname;

  /** listing主键 */
  @ExcelProperty("listing主键")
  @LongString(
    message = "listing主键数值格式不正确",
    label = "listing主键",
    min = 0L
  )
  private String listingId;

  /** 配送类型 */
  @ExcelProperty("配送类型")
  @Size(max = 50, message = "配送类型长度不能超过50")
  private String fulfillmentChannelType;

  /** 店铺 */
  @ExcelProperty("店铺")
  @LongString(message = "店铺数值格式不正确", label = "店铺")
  private String sid;

  /** 采购成本 */
  @ExcelProperty("采购成本")
  @DecimalString(message = "采购成本小数格式不正确", label = "采购成本")
  private String cost;
}
